package com.example.no1admin.service;

import com.example.no1admin.pojo.dto.order.OrderAddNewDTO;
import com.example.no1admin.pojo.dto.order.OrderEditDTO;
import com.example.no1admin.pojo.entity.Order;
import com.example.no1admin.pojo.vo.order.OrderDetailVO;
import com.example.no1admin.pojo.vo.order.OrderListItemVO;

import java.util.List;

public interface IOrderService {

    /**
     * 创建订单
     * @param orderAddNewDTO  创建的订单数据
     */
    void addNew(OrderAddNewDTO orderAddNewDTO);

    /**
     * 根据订单id删除对应的订单数据
     * @param id 订单id
     */
    void deleteById(Long id);

    /**
     * 根据若干个订单id，批量删除订单数据
     * @param ids 期望删除的若干个订单数据的id
     */
    void deleteByIds(Long... ids);
    
    /**
     * 根据id修改订单数据
     * @param orderEditDTO 修改的订单数据
     * @return 受影响的行数，当修改成功时，将返回1，如果无此id对应的数据，将返回0
     */
    void updateById(OrderEditDTO orderEditDTO);

    /**
     * 根据订单id查询订单详情
     * @param id 订单id
     * @return 此订单id对应的订单数据
     */
    OrderDetailVO getById(Long id);
    
    /**
     *查询订单列表
     * @return 订单列表的集合
     */
    List<OrderListItemVO> list();
}
